package demo.practice.leetcode_base;

public class P88 {


    public void merge(int[] nums1, int m, int[] nums2, int n) {
        /*
        nums1 = [1,2,3,0,0,0], m = 3     向nums1末尾堆数据
        nums2 = [2,5,6],       n = 3
        */

        int i=m-1;
        int j=n-1;

        int count=0;
        while(i>=0&&j>=0){
            nums1[m+n-1-count]= nums1[i]>nums2[j]?nums2[i]:nums2[j];
            if(nums1[i]>nums2[j])
                i--;
            else{
                j--;
            }

            count++;
        }


        /**
         *          nums1 = [4,5,6,0,0,0], m = 3     向nums1末尾堆数据
         *         nums2 = [1,2,3],       n = 3
         *         nums1 = [4,5,6,4,5,6]
         *         此时 还需要将nums2中前面部分元素放到nums1中
         *
         */
        if (i < 0&&j>=0) {
            System.arraycopy(nums2, 0, nums1, 0, j+1);
        }

    }
}
